package io.itit.ecp.admin.server.entity.extend;


import com.alibaba.fastjson.JSON;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Map;

@Data
public class PhysicalModelExt {

    private String id;

    /**
     * 模型名称
     */
//    @ApiModelProperty("模型名称")
    private String modelName;

    /**
     * 模型标识
     */
//    @ApiModelProperty("模型标识")
    private String modelTag;

    /**
     * 模型类别 (1:属性，2:功能，3:事件)
     */
//    @ApiModelProperty("模型类别 (1:属性，2:功能，3:事件)")
//    @Dict(isBean = true, dictCode = PhysicalModelModelTypeSelected.CODE)
    private String modelType;

    /**
     * 模型特性（可多 选, 1:实时监测、2:只读数据、3:历史存储、4:计量参数）
     */
//    @ApiModelProperty("模型特性（可多 选, 1:实时监测、2:只读数据、3:历史存储、4:计量参数）")
    private String modelFeatures;

    /**
     * 数据类型(1:整数,2:小数, 3:布尔,4:枚举,5:字符串,6:数组,7:对象)
     */
//    @ApiModelProperty("数据类型(1:整数,2:小数, 3:布尔,4:枚举,5:字符串,6:数组,7:对象)")
//    @Dict(isBean = true, dictCode = PhysicalModelModelFieldTypeSelected.CODE)
    private String fieldType;

    /**
     * 数据类型(1:动态数据,2:静态数据)
     */
//    @ApiModelProperty("数据类型(1:动态数据,2:静态数据)")
//    @Dict(isBean = true, dictCode = PhysicalModelModelDataTypeSelected.CODE)
    private String dataType;

//    @ApiModelProperty("数据值")
    private Object newValue;

    /**
     * 不同数据类型对应的配置参数
     */
//    @ApiModelProperty("不同数据类型对应的配置参数")
    private String dataExt;

    public Map<String, Object> getDataExtMap() {
        if (StringUtils.isEmpty(this.dataExt)) {
            return null;
        }
        return JSON.parseObject(this.dataExt);
    }
}
